package org.huawei260.TiKu.C.C048;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @Auther: qingle
 * @Date: 2024/10/22-18:04
 * @Description:
 * 解题思路：
 * 1. 解析输入：首先读取注册的App数量，然后解析每个App的注册信息，包括名称、优先级、起始时间和结束时间。
 * 2. 时间比较：将输入的时间点与每个App的时间段进行比较，判断该时间点是否在时间段内。
 * 3. 优先级判断：如果多个App的时间段包含该时间点，则选择优先级最高的App。
 * 4. 输出结果：输出符合条件的App名称，如果没有符合条件的App，则输出“NA”。
 *
 * 复杂度分析：
 * - 时间复杂度：O(N)，因为需要遍历所有注册的App。
 * - 空间复杂度：O(N)，用于存储App的注册信息。
 *
 *  这道题考察的知识点包括：
 *
 * 1. 字符串处理：解析输入数据，提取App名称、优先级、时间等信息。
 *
 * 2. 时间比较：将时间字符串进行比较，判断时间点是否在指定的时间段内。
 *
 * 3. 条件判断：根据优先级选择合适的App。
 *
 * 4. 数据结构：使用列表存储App信息，方便遍历和查找。
 *
 * 5. 算法设计：设计一个有效的算法来解决问题，包括遍历、比较和选择。
 *
 * 6. 边界条件处理：处理没有符合条件的App的情况，输出“NA”。
 *
 *
 * @version: 1.0
 */
public class MainAn {

	static class App {
		String name;
		int priority;
		String startTime;
		String endTime;

		public App(String name, int priority, String startTime, String endTime) {
			this.name = name;
			this.priority = priority;
			this.startTime = startTime;
			this.endTime = endTime;
		}

		public boolean isInTime(String startTime, String endTime, String queryTime) {
			return queryTime.compareTo(startTime) >= 0 && queryTime.compareTo(endTime) <= 0;
		}
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = Integer.parseInt(scanner.nextLine().trim());

		// 使用列表存储App信息，方便遍历和查找。
		List<App> apps = new ArrayList<>();

		// 解析输入的内容
		for (int i = 0; i < n; i++) {
			String[] parts = scanner.nextLine().split(" ");
			String name = parts[0];
			String priorityStr = parts[1];
			int priority = Integer.parseInt(priorityStr);
			String startTime = parts[2];
			String endTime = parts[3];
			// 创建App对象，并添加到列表中
			apps.add(new App(name, priority, startTime, endTime));
		}

		String queryTime = scanner.nextLine().trim();
		String result = "NA";
		int maxPriority = -1;

		// 对每个App进行判断

		// 先判断是否在时间内

		// 再判断优先级是否更高

		for (App app:apps) {
			// 先判断是否在时间内
			if (app.isInTime(app.startTime, app.endTime, queryTime)){
				if (app.priority > maxPriority) {
					result = app.name;
					maxPriority = app.priority;
				}
			}
		}

		System.out.println(result);

	}


}
